# ======================================================================
#
# Copyright (C) ADN
# ADN::LIBRARY::IP::Ip Ip.pm
# Description:
#  - Gestion des adresses réseaux
#
# ======================================================================

package ADN::LIBRARY::IP::Ip;

use strict;
use Net::IP;

# #######################
# Création de l'objet self + init. variables
# #######################
sub new
{
	# Construction de l'objet $self
	my $self = shift;
	my $class = ref($self) || $self;
	return $self if ref $self;
	$self = bless {} => $class;
	$self->{IP} = new Net::IP($_[0]);
	if (!defined $self->{IP})
	{
    return 0;
  }
  return $self;
}

# #######################
# Fonction Liste des adresses
# #######################
sub start
{
  my $self = shift;
  
  if ($self->{IP}->ip() ne $self->{IP}->last_ip())
  {
    ++$self->{IP};
    do
    {
      push @{$self->{tab}}, $self->{IP}->ip(); 
    } while(++$self->{IP});
  }
  else
  {
    @{$self->{tab}}[0] = $self->{IP}->ip();
  }
  return @{$self->{tab}};
}

# #######################
# DESTROY OBJECT
# #######################
sub DESTROY {
    my $self = shift;
    return;
}
1;
__END__